class Effect {
    constructor(config) {
        this.id = config.id;
        this.name = config.name;
        this.description = config.description;
        this.price = config.price || 0;
        this.type = config.type;
        this.duration = config.duration || -1; // -1 表示永久
    }

    // 应用效果
    apply(character) {
        throw new Error('Must implement apply');
    }

    // 移除效果
    remove(character) {
        throw new Error('Must implement remove');
    }

    // 获取效果描述
    getDescription() {
        return this.description;
    }
}

// 效果类型枚举
const EffectType = {
    PASSIVE: 'passive',    // 被动效果
    TRIGGER: 'trigger',    // 触发效果
    BUFF: 'buff',         // 增益效果
    DEBUFF: 'debuff'      // 减益效果
}; 